using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace DblogStudio.DAL.Models.Mapping
{
	public class AppUser_FunctionMap : EntityTypeConfiguration<AppUser_Function>
	{
		public AppUser_FunctionMap()
		{
			// Khoá chính
			this.HasKey(t => new { t.UserName, t.FunctionName });

			// Các cột
			this.Property(t => t.UserName)
				.IsRequired()
                .HasMaxLength(50);

			this.Property(t => t.FunctionName)
				.IsRequired();

			// Ánh xạ Property của POCO vào Column của Table
			this.ToTable("AppUser_Function");
			this.Property(t => t.UserName).HasColumnName("UserName");
			this.Property(t => t.FunctionName).HasColumnName("FunctionName");

			// Các quan hệ
			this.HasRequired(t => t.AppUser)
				.WithMany(t => t.AppUser_Function)
				.HasForeignKey(d => d.UserName);

		}
	}
}
